package app.com.business.service;

import java.util.List;







import app.com.business.bo.AffectationDepartement;
import app.com.business.bo.AffectationGeneralDepartement;
import app.com.business.bo.Etat;
import app.com.business.bo.Fournisseur;
import app.com.business.bo.Materiel;
import app.com.business.bo.Prof;
import app.com.business.bo.Salle;
import app.com.business.exceptions.MaterielException;

public interface GestionMateriel {

	public void ajouterMateriel(Materiel materiel);
	public Materiel getMaterielByCodeBarres(String codeBarres) throws MaterielException;
	public List<Materiel> getAllMateriels();
	
	public List<Materiel> rechercherByCodeBarres(String codeBarres) throws MaterielException;
	public List<Materiel> rechercherByNumInventaire(String numInventaire) throws MaterielException;
	public List<Materiel> rechercherByAffectation(Long idAffectationGeneral) throws MaterielException;
	
	
	public void ajouterEtat(Etat etat);
	public void ajouterFournisseur(Fournisseur fournisseur);
	public void ajouterAffectationGeneralDepartement(AffectationGeneralDepartement affectation);
	
	public void supprimerMateriel(String codeBarres) throws MaterielException;
	
	public List<AffectationDepartement> getAllAffectations();
	public List<Salle> getAllSalles();
	public List<Prof> getAllProfs();
	public List<Fournisseur> getAllFournisseurs();
	public List<Etat> getAllEtats();
	
	public Etat getEtatByType(String typeEtat) throws MaterielException;
	public Fournisseur getFournisseurByLibelle(String fournisseurSelectionnee) throws MaterielException;
	public AffectationDepartement getAffectationByCodeAffectation(
			String affectationSelectionnee) throws MaterielException;
	public Salle getSalleByCodeSalle(String salleSelectionnee) throws MaterielException;
	public Prof getProfByCodeProf(String profSelectionnee) throws MaterielException;
    
	public AffectationGeneralDepartement updateAffectation() throws MaterielException;
	public AffectationGeneralDepartement getIdAffectation(
			AffectationGeneralDepartement affectationGeneral) throws MaterielException;
	
}
